﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CapaNegocio;
using Excepciones;

namespace CapaUsuario
{
    public partial class RetiroDePremio : Form
    {
        private Admin admin;
        int dni, puntos;
        
        public RetiroDePremio(Admin a)
        {
            admin = a;
            InitializeComponent();
            textBox1.Text = DateTime.Today.ToShortDateString();
            dataGridView2.Enabled = false;
            dataGridView1.DataSource = admin.listar("cliente");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                dni = (int)dataGridView1.CurrentRow.Cells[0].Value;
                string nombre = (string)dataGridView1.CurrentRow.Cells[3].Value;
                puntos = (int)dataGridView1.CurrentRow.Cells[5].Value;

                textBoxdni.Text = dni.ToString();
                textBoxnombre.Text = nombre;
                textBoxpuntos.Text = puntos.ToString();
                dataGridView2.Enabled = true;
                dataGridView2.DataSource = admin.listarPremios(puntos);
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                int nroPremio, stock, puntosNecesarios;
                
                nroPremio = (int)dataGridView2.CurrentRow.Cells[0].Value;
                puntosNecesarios = (int)dataGridView2.CurrentRow.Cells[2].Value;
                stock = (int)dataGridView2.CurrentRow.Cells[3].Value;
                int puntosact = this.puntos - puntosNecesarios;
                
                if (admin.altaRetiroPremio(dni, nroPremio, puntosact, stock - 1, DateTime.Today) == true)
                {

                    MessageBox.Show("se ha registrado el retiro del premio ");
                }
                else
                    MessageBox.Show(" ERROR-");
                this.Close();

            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }
            //actualizo las dos datagridview
            finally
            {
                admin.listar("cliente");
                admin.listar("premio");
            }
        }

    }
}
